/**
 * Represents an entity that wants to monitor the simulation clock and be
 * notified of simulated time events
 * 
 * @author SNelson
 * 
 */
public interface Schedulable
{
	/**
	 * Called when a new day is started in the simulation
	 * 
	 * @param day
	 *            The numeric day in the simulation
	 */
	void onNewDay(int day);

	/**
	 * Called when a new simulated hour begins
	 * 
	 * @param day
	 *            The current day
	 * @param hour
	 *            The current hour
	 */
	void onHour(int day, int hour);

	/**
	 * Called when the simulation has ended
	 */
	void onSimulationEnd();
}
